This is actually a very wonderful head start for those people who wanted to learn more about using javascript especially that they really need to learn these basic things for them to continue their learning about it.
Why is foo a statement and bar(7,1) an expression? You do not elaborate on the contents of the functions, so if bar has an imperative construct in it(if,for,etc), it is also a statement. If foo only computes a value based on the return value of bar(7,1) it will be only an expression. What am i missing?
I could be wrong but variables don't have to be declared before using and don't have to be declared via 'var' do they?
In both cases JS will work it's way up the scope chain until it matches a variable of the same name, unless it hits the global scope in which case it's created.
In strict mode, you have to. In sloppy mode, you don’t really have to, but you are doing something wrong if you don’t: assigning to a variable before declaring it creates a global variable.
Since this is a guide for beginners, I think you should mention whether JavaScript is case sensitive or not. It would be good to mention it when demonstrating toUpperCase()
I like succinct books that gives you information you need without any fluff or ceremony. Most apt example would be "The C Programming Language" by K&R. It would be great if your book could be similar. From what I've read so far it's heading in the right direction (bow)